package com.vhall.component.controller.vote.facade;

import com.vhall.component.entity.page.vo.PageVO;
import com.vhall.component.entity.vote.vo.*;
import com.vhall.component.entity.vote.vo.console.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * @author shimingming
 * @since 2023/4/27 14:03
 */
@FeignClient(name = "VoteAdminFacade", path = "/v4/vote/admin")
public interface VoteAdminFacade {





    /**
     * 控制台查询投票列表
     *
     * @param repVO
     * @return
     */
    @GetMapping("/list")
    PageVO<VotesListRspVO> list(@Validated VotesListConsoleReqVO repVO);

    /**
     * 是否回答过问题
     *
     * @param voteInfoVO
     * @return
     */
    @GetMapping("/info")
    VoteInfoRspVO info(@Validated VoteInfoReqVO voteInfoVO);

    /**
     * 房间数据投票统计详情
     *
     * @param reqVO
     * @return
     */
    @GetMapping("/stat")
    PageVO<StatRsqVO> stat(@Validated StatReqVO reqVO);


    /**
     * 房间数据 异步导出excel
     *
     * @param reqVO
     * @return
     */
    @PostMapping("/export")
    Boolean export(@Validated VoteExportVO reqVO);

    /**
     * 查询投票详情信息
     *
     * @param reqVO
     * @return
     */
    @GetMapping("/vote-detail")
    List<VoteDetailRspVO> voteDetail(@Validated VoteDetailReqVO reqVO);

    /**
     * 查询投票是否已发布
     *
     * @param reqVO
     * @return 1：是  0：否
     */
    @PostMapping("/vote-is-publish")
    PublishRspVO isPublish(VotePublishReqVO reqVO);
}
